﻿#define _CRT_SECURE_NO_WARNINGS
//#include<iostream>
//using namespace std;
//class Data
//{
//public:
//	void Init(int year, int month, int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	void Print(int year, int month, int day)
//	{
//		cout << _year << "/" << _month << "/" << _day;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//int main()
//{
//	Data d;
//	d.Init(2025, 4, 20);
//	d.Print(2025, 4, 20);
//	return 0;
//}
//#include<iostream>
//using namespace std;
//class Stack
//{
//public:
//	void Init(int n = 4)
//	{ 
//		_a = (int*)malloc(sizeof(int) * n);
//		if (_a == nullptr)
//		{
//			perror("malloc fail");
//			return;
//		}
//		_capacity = n;
//		_top = 0;
//	}
//	void Push(int x)
//	{ 
//		//检查空间是否足够
//		if (_top == _capacity)
//		{
//			int* tmp = (int*)realloc(_a, sizeof(int) * 2 * _capacity);
//			if (tmp == nullptr)
//			{
//				perror("realloc fail");
//				return;
//			}
//			_a = tmp;
//			_capacity *= 2;
//		}
//		_a[_top] = x;
//		_top++;
//	}
//	void Pop()
//	{
//		_top--;
//	}
//	void Destroy()
//	{ 
//		free(_a);
//		_a = nullptr;
//		_top = _capacity = 0;
//	}
//	void Print()
//	{
//		for (int i = 0; i < _top; i++)
//		{
//			cout << _a[i] << " ";
//		}
//		cout << endl;
//	}
//private:
//	int* _a;
//	int _capacity;
//	int _top;
//};
//int main()
//{
//	Stack s1;
//	s1.Init();
//	s1.Push(4);
//	s1.Push(5);
//	s1.Push(3);
//	s1.Push(2);
//	s1.Push(1);
//	s1.Push(7);
//	s1.Print();
//	s1.Pop();
//	s1.Pop();
//	s1.Pop();
//	s1.Pop();
//	s1.Print();
//}


//#include<iostream>
//using namespace std;
//class Stack
//{
//	//在class中，没有在访问限定符中的默认为私有，外部不能访问
//	//在struct中，没有在访问限定符中的默认为共有，外部也可以访问
//	void Top();
////Stack外部也能访问
//public:
//	void Init(int n = 4)
//	{ }
//	void Push()
//	{ }
//	void Pop()
//	{ }
//	void Destroy()
//	{ }
////只有在Stack中才能访问
//private:
//	//前边加_是为了区分成员变量
//	int* _a;
//	int _top;
//	int _capacity;
//};
//int main()
//{
//	Stack s1;
//	s1.Init();
//	//s1._a   ×,_a是私有的不能访问
//	return 0;
//}

#include<iostream>
//using namespace std;
//// 计算⼀下A / B / C实例化的对象是多⼤？
//
//class A
//{
//public:
//	void Print()
//	{
//		cout << _ch << endl;
//	}
//private:
//	char _ch;
//	int _i;
//};
//class B
//{
//public:
//	void Print()
//	{
//		//...
//	}
//};
//class C
//{
//};
//int main()
//{
//	A a;
//	B b;
//	C c;
//	cout << sizeof(a) << endl;
//	cout << sizeof(b) << endl;
//	cout << sizeof(c) << endl;
//	return 0;
//}

//this指针
#include<iostream>
using namespace std;
class Data
{
public:
	//void Init(Data* const this, int year, int month, int day)
	void Init(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}
	//void Print(Data* const this)
	void Print()
	{
		cout <<this-> _year << "/" << this->_month << "/" << this->_day;
		cout << endl;
	}
private:
	int _year;
	int _month;
	int _day;
};
int main()
{
	Data d1;
	Data d2;
	//d1.Init(&d1, 2024, 1, 1)
	d1.Init(2024, 1, 1);
	//d1.Print(&d1);
	d1.Print();

	//d1.Init(&d2, 2025, 4, 20)
	d2.Init(2025, 4, 20);
	
	//d1.Print(&d2);
	d2.Print();
	return 0;
}